;;;
;;; Meta stuff
;;;

(define-imported-class (somewhat-rich-text-writer
			"Meta.SomewhatRichTextWriter")
  object
  (define (write (image i)) (public) void)
  (define (get-back-color) (public) color)
  (define (create-graphics) (public) graphics))

(define-imported-class (i-rich-writeable "Meta.IRichWriteable")
  object
  (define (rich-write "Meta.IRichWriteable.RichWrite"
		      (somewhat-rich-text-writer w))
    (public virtual) void))

;;;
;;; Other
;;;

(define-imported-class (interval (single-float min)
				 (single-float max))
  object
  (define interval-min "min" (public) single-float)
  (define interval-max "max" (public) single-float)
  (define interval-size "Size" (public) single-float)
  (define (extend-projection (point-f a) (point-f b))
    (public) void)
  (define (union (interval i)) (public) void)
  (define (extend (single-float new-min) (single-float new-max))
    (public) void)
  (define (extend-min (single-float new-min)) (public) void)
  (define (extend-max (single-float new-max)) (public) void))

(import (projection-interval "Interval.ProjectionInterval"
			     (proc ((type-expression-value 'point-f)
				    (type-expression-value 'point-f))
				   (type-expression-value 'interval)))
	(project "Interval.Project"
		 (proc ((type-expression-value 'point-f)
			(type-expression-value 'point-f))
		       (type-expression-value 'single-float))))
